home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Codigo / Recortar, arrastrar y colocar / ClipText / ClipText.cs next >
Encoding:
Text File  |  2002-05-30  |  2.7 KB  |  88 lines

  1. //---------------------------------------
  2. // ClipText.cs ⌐ 2001 by Charles Petzold
  3. //---------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7.  
  8. class ClipText: Form
  9. {
  10.      string   strText = "Ejemplo de texto para el portapapeles";
  11.      MenuItem miCut, miCopy, miPaste;
  12.      [STAThread]
  13.  
  14.      public static void Main()
  15.      {
  16.           Application.Run(new ClipText());
  17.      }
  18.      public ClipText()
  19.      {
  20.           Text = "Texto en el portapapeles";
  21.           ResizeRedraw = true;
  22.  
  23.           Menu = new MainMenu();
  24.  
  25.                // Men· Edici≤n
  26.  
  27.           MenuItem mi = new MenuItem("&Edici≤n");
  28.           mi.Popup += new EventHandler(MenuEditOnPopup);
  29.           Menu.MenuItems.Add(mi);
  30.  
  31.                // Elemento de men· Edici≤n Cortar
  32.  
  33.           miCut = new MenuItem("Co&rtar");
  34.           miCut.Click += new EventHandler(MenuEditCutOnClick);
  35.           miCut.Shortcut = Shortcut.CtrlX;
  36.           Menu.MenuItems[0].MenuItems.Add(miCut);
  37.  
  38.                // Elemento de men· Edici≤n Copiar
  39.  
  40.           miCopy = new MenuItem("&Copiar");
  41.           miCopy.Click += new EventHandler(MenuEditCopyOnClick);
  42.           miCopy.Shortcut = Shortcut.CtrlC;
  43.           Menu.MenuItems[0].MenuItems.Add(miCopy);
  44.  
  45.                // Elemento de men· Edici≤n Pegar
  46.  
  47.           miPaste = new MenuItem("&Pegar");
  48.           miPaste.Click += new EventHandler(MenuEditPasteOnClick);
  49.           miPaste.Shortcut = Shortcut.CtrlV;
  50.           Menu.MenuItems[0].MenuItems.Add(miPaste);
  51.      }
  52.      void MenuEditOnPopup(object obj, EventArgs ea)
  53.      {
  54.           miCut.Enabled = 
  55.           miCopy.Enabled = strText.Length > 0;
  56.           miPaste.Enabled = 
  57.                     Clipboard.GetDataObject().GetDataPresent(typeof(string));
  58.      }
  59.      void MenuEditCutOnClick(object obj, EventArgs ea)
  60.      {
  61.           MenuEditCopyOnClick(obj, ea);
  62.           strText = "";
  63.           Invalidate();
  64.      }
  65.      void MenuEditCopyOnClick(object obj, EventArgs ea)
  66.      {
  67.           Clipboard.SetDataObject(strText, true);
  68.      }
  69.      void MenuEditPasteOnClick(object obj, EventArgs ea)
  70.      {
  71.           IDataObject data = Clipboard.GetDataObject();
  72.  
  73.           if (data.GetDataPresent(typeof(string)))
  74.                strText = (string) data.GetData(typeof(string));
  75.  
  76.           Invalidate();
  77.      }
  78.      protected override void OnPaint(PaintEventArgs pea)
  79.      {
  80.           Graphics grfx = pea.Graphics;
  81.           StringFormat strfmt = new StringFormat();
  82.           strfmt.Alignment = strfmt.LineAlignment = StringAlignment.Center;
  83.  
  84.           grfx.DrawString(strText, Font, new SolidBrush(ForeColor),
  85.                           ClientRectangle, strfmt);
  86.      }
  87. }
  88.